From 185529d2f88a5362bc175787940e3cc44d94ff1f Mon Sep 17 00:00:00 2001
From: Li Yuan
Date: Fri, 12 Dec 2008 06:12:27 +0000
Subject: [PATCH] Bug #512743. (gail_tree_view_changed_gtk): Clean cell before
go through
2008-12-12 Li Yuan
* gailtreeview.c: Bug #512743.
(gail_tree_view_changed_gtk): Clean cell before go through the info
list, for "changed" signal could come before a "row-deleted".
(clean_cell_info):
Prevent the thread to be scheduled before clean_cell_info
finish its job.
svn path=/trunk/; revision=21872
---
modules/other/gail/ChangeLog | 9 +++++++++
modules/other/gail/gailtreeview.c | 4 +++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/modules/other/gail/ChangeLog b/modules/other/gail/ChangeLog
index 5157c33b4e..4066062b1d 100644
--- a/modules/other/gail/ChangeLog
+++ b/modules/other/gail/ChangeLog
@@ -1,3 +1,12 @@
+2008-12-12 Li Yuan
+
+ * gailtreeview.c: Bug #512743.
+ (gail_tree_view_changed_gtk): Clean cell before go through the info
+ list, for "changed" signal could come before a "row-deleted".
+ (clean_cell_info):
+ Prevent the thread to be scheduled before clean_cell_info
+ finish its job.
+
2008-12-09 Michael Natterer
* Makefile.am
diff --git a/modules/other/gail/gailtreeview.c b/modules/other/gail/gailtreeview.c
index b7d6ae00e2..6a8edb4555 100644
--- a/modules/other/gail/gailtreeview.c
+++ b/modules/other/gail/gailtreeview.c
@@ -2422,6 +2422,8 @@ gail_tree_view_changed_gtk (GtkTreeSelection *selection,
tree_selection = gtk_tree_view_get_selection (tree_view);
+ clean_rows (gailview);
+
for (l = cell_list; l; l = l->next)
{
info = (GailTreeViewCellInfo *) (l->data);
@@ -3529,7 +3531,7 @@ clean_cell_info (GailTreeView *gailview,
if (cell_info->in_use) {
obj = G_OBJECT (cell_info->cell);
- gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, TRUE);
+ gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE);
g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
cell_info->in_use = FALSE;
if (!gailview->garbage_collection_pending) {
--
2.30.2